Expand description
Signing API requests without effort.
Example
use reqsign::services::aws::v4::Signer;
use reqwest::{Client, Request, Url};
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()>{
// Signer can load region and credentials from environment by default.
let signer = Signer::builder()
.service("s3")
.region("test")
.allow_anonymous()
.build()?;
// Construct request
let url = Url::parse( "https://s3.amazonaws.com/testbucket")?;
let mut req = reqwest::Request::new(http::Method::GET, url);
// Signing request with Signer
signer.sign(&mut req)?;
// Sending already signed request.
let resp = Client::new().execute(req).await?;
println!("resp got status: {}", resp.status());
Ok(())
}
Available Services
- AWS SigV4 for AWS services like S3.
- Azure Storage for Azure Storage services like Azure Blob Service.
- Google for All google cloud services like Google Cloud Storage Service.
Features
reqsign support http::Request
by default. Other request types support are hided
under feature gates to reduce dependencies.
reqwest_request
: Enable to support signingreqwest::Request
reqwest_blocking_request
: Enable to support signingreqwest::blocking::Request
http_types_request
: Enable to support signinghttp_types::Request